<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* @framework : Codeigniter Framework
*
* @author: fatangel26
*
*/
	class User extends Admin_Controller
	{
		public function __construct()
		{
			parent::__construct();

            $this->load->model("backend/user_model", "MUser", TRUE);

            if(!$this->my_session->is_Admin())
            {
                redirect(base_url()."backend/auth/login");

                exit();
            }
		}


        public function index()
        {
            $this->_data['title'] = 'Jewel | Danh sách tài khoản';

            $data['users'] = $this->MUser->select();

            if(!$data['users'])
            {
                $data['msg'] = 'Không có dữ liệu để hiển thị';
            }

            $this->_data['content'] = $this->load->view("backend/user/userlist", $data, TRUE);

            $this->load->view("backend/layout",$this->_data);
        }

        public function edituser()
        {

            $this->_data['title'] = 'Jewel | Sửa tài khoản';

            if(!$this->uri->segment(4) || $this->uri->segment(4) == '')
            {
                $data['msg'] = 'Không tồn tại mã tài khoản.';
            }
            else
            {
                $user_id = $this->uri->segment(4);

                $data['user'] = $this->MUser->select(array('admin_id' => $user_id));

                if(!$data['user'])
                {
                    $data['msg'] = 'Không tồn tại mã tài khoản.';
                }
                else
                {
                    $this->form_validation->set_rules('uname','Tên đăng nhập','trim|required|min_length[3]|max_length[20]|xss_clean');
                    $this->form_validation->set_rules('email','Email','trim|required|min_length[3]|xss_clean|valid_email');
                    $this->form_validation->set_rules('fullname','Họ và tên','trim|required|xss_clean');
                    $this->form_validation->set_message('required','%s không được để trống');
                    $this->form_validation->set_message('min_length','%s không được ít hơn 3 ký tự');
                    $this->form_validation->set_message('max_length','%s không được nhiều hơn 20 ký tự');
                    $this->form_validation->set_message('valid_email','%s không chính xác');

                    if($this->form_validation->run()==FALSE)
                    {
                        $data['msg'] = '';
                    }
                    else
                    {
                        $strUpdate = array(
                            'admin_username'    =>  $this->input->post('uname', TRUE),
                            'admin_email'       =>  $this->input->post('email', TRUE),
                            'admin_fullname'    =>  $this->input->post('fullname', TRUE)
                        );

                        $check = $this->MUser->edit($user_id,$strUpdate);

                        if(!$check)
                        {
                            $data['msg'] = 'Lỗi update.';
                        }
                        else
                        {

                            $this->native_session->set_flashdata('msg',' Bạn đã cập nhật thành công');

                            redirect(base_url()."backend/user");

                            exit();
                        }
                    }//End else
                }//End else

            }//End else

            $this->_data['content'] = $this->load->view("backend/user/edituser", $data, TRUE);

            $this->load->view("backend/layout",$this->_data);
        }//End function

        public function createuser()
        {
            $this->_data['title'] = 'Jewel | Tạo tài khoản';

            /*Validate data*/
            $this->form_validation->set_rules('uname','Tên đăng nhập','trim|required|min_length[3]|max_length[20]|xss_clean|is_unique[tbl_admin.admin_username]');
            $this->form_validation->set_rules('email','Email','trim|required|min_length[3]|xss_clean|valid_email|is_unique[tbl_admin.admin_email]|xss_clean');
            $this->form_validation->set_rules('fullname','Họ và tên','trim|required|xss_clean');
            $this->form_validation->set_rules('pass','Mật khẩu','trim|required|min_length[3]|xss_clean');
            $this->form_validation->set_rules('repass','Nhập lại mật khẩu','trim|required|matches[pass]|min_length[3]|xss_clean');
            $this->form_validation->set_message('required','%s không được để trống');
            $this->form_validation->set_message('min_length','%s không được ít hơn 3 ký tự');
            $this->form_validation->set_message('max_length','%s không được nhiều hơn 20 ký tự');
            $this->form_validation->set_message('valid_email','%s không chính xác');
            $this->form_validation->set_message('matches','%s không chính xác');
            $this->form_validation->set_message('is_unique','%s đã tồn tại');

            if($this->form_validation->run()==FALSE)
            {
                $data['msg'] = '';
            }
            else
            {
                $strInsert = array(
                    'admin_username'    => $this->input->post('uname', TRUE),
                    'admin_fullname'    => $this->input->post('fullname', TRUE),
                    'admin_password'    => md5($this->input->post('pass', TRUE)),
                    'admin_email'       => $this->input->post('email', TRUE)
                );

                $check = $this->MUser->create($strInsert);

                if(!$check)
                {
                    $data['msg'] = 'Lỗi insert.';
                }
                else
                {
                    $this->native_session->set_flashdata('msg','Tạo tài khoản thành công.');

                    redirect(base_url()."backend/user");

                    exit();
                }//End else

            }//End else

            $this->_data['content'] = $this->load->view("backend/user/createuser", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);
        }//End function

        public function deluser()
        {
            if(!$this->uri->segment(4) || $this->uri->segment(4) == '')
            {
                $this->native_session->set_flashdata('msg','Không tồn tại mã tài khoản.');
            }
            else
            {
                $user_id = $this->uri->segment(4);

                $user = $this->native_session->userdata('admin');

                if($user['id'] == $user_id)
                {
                    $this->native_session->set_flashdata('msg','Đang trong phiên. Không thể xoá chính mình.');
                }
                else
                {
                    $check = $this->MUser->delete($user_id);

                    if(!$check)
                    {
                        $this->native_session->set_flashdata('msg','Lỗi delete.');
                    }
                    else
                    {
                        $this->native_session->set_flashdata('msg','Xoá thành công.');
                    }
                }

            }//End else

            redirect(base_url()."backend/user");
        }//End function

        public function changepass()
        {
            $this->_data['title'] = 'Jewel | Đổi mật khẩu';

            $user = $this->native_session->userdata('admin');

            $data['username'] = $user['username'];

            /*Validate data*/
            $this->form_validation->set_rules('oldpass','Mật khẩu hiện tại','trim|required|min_length[3]|xss_clean|callback_checkOldPass');
            $this->form_validation->set_rules('newpass','Mật khẩu mới','trim|required|min_length[3]|xss_clean');
            $this->form_validation->set_rules('renewpass','Nhập lại mật khẩu mới','trim|required|matches[newpass]|min_length[3]|xss_clean');
            $this->form_validation->set_message('min_length','%s không được ít hơn 3 ký tự');
            $this->form_validation->set_message('matches','%s không chính xác');

            if($this->form_validation->run() == FALSE)
            {
                $data['msg'] = '';
            }
            else
            {
                $strUpdate = array('admin_password' => md5($this->input->post('newpass', TRUE)));

                $check = $this->MUser->edit($user['id'], $strUpdate);

                if(!$check)
                {
                    $data['msg'] = 'Lỗi update.';
                }
                else
                {

                    $this->native_session->set_flashdata('msg',' Đổi mật khẩu thành công');

                    redirect(base_url()."backend/user");

                    exit();
                }
            }

            $this->_data['content'] = $this->load->view("backend/user/changepass", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);
        }//End function

        public function checkOldPass($oldpass)
        {
            $user = $this->native_session->userdata('admin');

            $check = $this->MUser->select(array('admin_id' => $user['id'],'admin_password' => md5($oldpass)));

            if(!$check)
            {
                $this->form_validation->set_message('checkOldPass','Mật khẩu cũ không đúng !');
                return FALSE;
            }
            else
                return TRUE;
        }

	}

/* End of file User.php */
/* Location: ./Controllers/backend/user.php */